﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using SIGEB.Modelo.moduloTipoDocumentos;
using System.Drawing;

namespace SIGEB.Prototipo.Vista.moduloDocumentos
{
    public class campoDocumento
    {
        #region "constructores"

        public campoDocumento(string id, string nombre, string texto, int tipo, int x, int y)
        {
            this.id = id;
            this.tipo = tipo;
            this.nombre = nombre;
            generaControl(x,y,texto);
        }

        private void generaControl(int x, int y, string texto)
        {
            _etiqueta = new Label();
            _etiqueta.Text = nombre;
            _etiqueta.Location = new Point(x, y);
            if (tipo == atributo.ALFANUMERICO || tipo == atributo.NUMERO)
            {
                campoControl = new TextBox();
                campoControl.Text = texto;
                campoControl.Width = anchoCampo;
            }
            else if (tipo == atributo.FECHA)
            {
                campoControl = new DateTimePicker();
                try
                {
                    ((DateTimePicker)campoControl).Value = DateTime.Parse(texto);
                }
                catch
                {
                    ((DateTimePicker)campoControl).Value = DateTime.Now;
                }
                
            }
            else
            {
                throw new Exception("tipo de documento invalido");
            }
            campoControl.Location = new Point(x, _etiqueta.Location.Y + distCampoLabel);
            
            
        }

        #endregion

        #region "metodos"

        public string valorActual()
        {
            if (campoControl != null)
            {
                return campoControl.Text;
            }
            return "";
        }

        public void setValor(string val)
        {
            if (atributo.ALFANUMERICO == tipo || tipo == atributo.NUMERO)
            {
                campoControl.Text = val;
            }
            else if (tipo == atributo.FECHA)
            {
                ((DateTimePicker)campoControl).Value = DateTime.Parse(val);
            }
        }

        public System.Windows.Forms.Control campo()
        {
            return campoControl;
        }

        public System.Windows.Forms.Label etiqueta()
        {
            return _etiqueta;
        }

        #endregion

        #region "atributos"

        public string id;
        string nombre;
        int tipo;

        int anchoCampo = 200;
        int distCampoLabel = 15;

        Label _etiqueta;
        System.Windows.Forms.Control campoControl;

        #endregion
    }
}
